AWS: SES การตั้งค่า SMTP พื้นฐาน
SMTP คืออะไร ?
SMTP ย่อมาจาก Simple Mail Transfer Protocol ซึ่งคือมาตราฐานสำหรับการรับส่ง Email บน Internet นั้นเอง ปัจจุบันระบบส่งเมลทั่วโลกต่างใช้ SMTP ในการรับและส่งข้อมูลเป็นมาตราฐานเดียวกันหมด
และในบล็อกนี้ผมก็จะมาสอนวิธีการตั้งค่าการใช้งานและส่งอีเมลบนเซอร์วิส AWS SES กันครับ
วิธีการตั้งค่าใช้งาน SMTP
ในขั้นตอนแรกเราจะทำการสร้าง SMTP credential กันก่อนเปรียบเสมือนการรับรองความปลอดภัยในการใช้งาน SMTP บน SES
- ให้เราเข้าไปที่หัวข้อ Account Dashboard และเลื่อนลงมาด้านล่างสุดเพื่อกดปุ่ม
- จากนั้นทำการแก้ไขตัวเลขที่อยู่หลัง user. ให้เป็นชื่อที่เราต้องการเพื่อให้ง่ายต่อการจดจำและใช้งานว่านี้คือ User ของเรา (ในตัวอย่างผมจะใส่เป็นชื่อผมนะครับ) และกดปุ่ม Create ได้เลยครับ
- เมื่อเราสร้างเสร็จนะครับเราก็จะได้ SMTP Username และ SMTP Password มานะครับสำหรับเชื่อมต่อกับเซิร์ฟเวอร์ในการส่งเมลและให้เรากดปุ่ม Download Credentials นะครับเพื่อเป็นการบันทึก SMTP Username และ Password กรณีที่ต้องการใช้งานก็จะได้สามารถก้อปมาใช้งานได้เลย
- ขั้นตอนถัดไปให้เราเปิดโปรแกรม Putty ที่เชื่อมต่อกับ Instance ของเราและกรอกข้อมูล SMTP ที่เราได้มาก่อนหน้านี้ลงไปโดยมีฟอร์มตามด้านล่างนี้เพื่อทำการกำหนดค่า SMTP
ในขั้นตอนนี้เราจำเป็นที่จะต้องสร้าง Instance ใน EC2 ก่อนจากนั้นนำมาเชื่อมต่อกับ Putty เพื่อใช้งาน สามารถดูรายละเอียดเพิ่มเติมได้ที่ How to install Amazon LINUX on EC2
SMTP_USER=AKIxxxxxxxx SMTP_PASSWORD=xxxxxxxxx
- ตามด้วยคำสั่งด้านล่างเพื่อทำการแปลงข้อมูล SMTP ของเราให้มีการเข้ารหัสเพื่อเพิ่มความปลอดภัยในการใช้งาน เมื่อรันคำสั่งนี้เสร็จเราจะได้ข้อมูลที่มาการเข้ารหัสในรูปแบบ base64 เพื่อนำมาใช้งานการส่งอีเมลในขั้นตอนถัดไป
printf "%s\0%s\0%s" ${SMTP_USER} ${SMTP_USER} ${SMTP_PASSWORD} | openssl base64 -e | tr -d '\n'; echo
- จากนั้นให้เราใช้คำสั่ง
vi mail.txt
เพื่อเปิดใช้งานไฟล์นี้ และเพิ่มข้อมูลสำหรับทดสอบการส่งอีเมลแบบ SMTP ซึ่งจะมีฟอร์มข้อมูลดังนี้
EHLO localhost AUTH PLAIN xxxxBASE64xxxx MAIL FROM: RCPT TO: DATA SUBJECT: TestMail TEST MAIL from SES . QUIT
AUTH PLAIN: ให้เราใส่ข้อมูล SMTP User แบบเข้ารหัส base64 ที่เราได้จากคำสั่งก่อนหน้านี้
MAIL FROM: อีเมลผู้ส่ง
RCPT TO: อีเมลผู้รับ
SUBJECT: หัวข้อจดหมาย
BODY: เนื้อหาที่ต้องการจะส่ง (ซึ่งจะอยู่บรรทัดถัดไปจาก SUBJECT ถ้าเราใส่ข้อมูลหลังจากบรรทัดนี้จะถือว่าเป็นข้อมูล Body ทั้งหมด)
- และเมื่อเราทำการใส่ข้อมูลเพื่อทดสอบการส่งอีเมลเสร็จแล้ว ให้เราใช้คำสั่ง
cat mail.txt | openssl s_client -starttls smtp -crlf -connect email-smtp.ap-southeast-1.amazonaws.com:587
โดยใส่ข้อมูลที่ตรงกับ Host name และ Port number ของเราซึ่งสามารถดูได้จากเมนู Account dashboard ที่อยู่ในเซอร์วิส SES ตามรูปภาพด้านล่างนี้
-
ถ้าการส่งอีเมลสำเร็จระบบก็จะแสดงข้อความ
250 Ok
เป็นการยืนยันว่าการส่งอีเมลสำเร็จแล้ว -
ในขั้นตอนสุดท้ายให้เราลองเข้าไปเช็คกล่องข้อความของอีเมลที่เราทำการส่งไปว่า มีข้อความอีเมลเข้ามาหรือไม่ ? ถ้าพบว่ามีข้อความใหม่ส่งเข้ามาและเนื้อหาตรงกับที่เราได้ทำการตั้งค่าไว้ก็เป็นอันเสร็จสิ้นการทดสอบใช้งานการส่งอีเมลด้วยมาตรฐาน SMTP
เพียงเท่านี้เราก็สามารถใช้งานการส่งอีเมลของเซอร์วิส SES ด้วยมาตรฐาน SMTP ที่รองรับการใช้งานกันทั่วโลกได้แล้วครับ ไว้ผมกันใหม่กับเนื้อหาบล๊อกครั้งถัดไปนะครับ สวัสดีครับ